//package com.dgm.mybatisplus.apiscanner.scanner;
//
//import cn.hutool.json.JSONUtil;
//import com.dgm.activemq.entity.SendParam;
//import com.dgm.activemq.producer.IProducer;
//import com.dgm.mybatisplus.apiscanner.dto.SysInterface;
//import com.dgm.mybatisplus.apiscanner.properties.ApiScannerProperties;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
//import org.springframework.boot.context.properties.EnableConfigurationProperties;
//import org.springframework.stereotype.Component;
//
//import java.util.List;
//
///**
// * Api接口数据发送mq
// *
// * @author 王梅
// * @date 2018/11/7 9:15
// */
//@Slf4j
//@Component
//@EnableConfigurationProperties(ApiScannerProperties.class)
//@ConditionalOnProperty(prefix = "api.scanner", name = "activemq", havingValue = "enabled", matchIfMissing = false)
//public class ApiProducer {
//    @Autowired
//    private IProducer producer;
//    @Autowired
//    private ApiScannerProperties properties;
//
//    /**
//     * 更新系统接口信息到数据库
//     */
//    public void updateSysInterface() {
//        ApiScanner scanner = new ApiScanner();
//        sendApiInfoToMq(scanner.scanApiListing());
//    }
//
//
//    /**
//     * 将抽取到的系统各接口信息发给mq，供各消费端入库保存并使用
//     */
//    public void sendApiInfoToMq(List<SysInterface> interfaceList) {
//        String destinationName = properties.getDestinationName();
//        for (SysInterface sysInterface : interfaceList) {
//            String strInterface = JSONUtil.toJsonStr(sysInterface);
//
//            // 消息类型为队列
//            SendParam param = new SendParam(false, destinationName, strInterface);
//
//            // 不用为消息地址 添加前缀
//            param.setDestinationPrefix(false);
//            try {
//                producer.send(param);
//                log.debug("系统接口信息发送至消息中间件成功");
//                // 接口很多的时候 并发量大会导致消费端 丢数据，所以每条消息发送设置间隔，20毫秒为测试得出的不丢数据的最小间隔
//                Thread.sleep(20);
//            } catch (Exception ex) {
//                log.error(ex.getMessage(), ex);
//            }
//        }
//    }
//
//
//}
